// models/article_model.go
// =============================================================================
// | 包: models                                                              |
// | 功能: 定义应用程序的数据模型，映射数据库表结构                           |
// =============================================================================
package models

// =============================================================================
// | 结构体: ArticleModel                                                    |
// | 功能: 文章数据模型                                                      |
// | 说明: 映射数据库中的文章表，存储文章相关信息                             |
// |----------------------------------------------------------------------------|
// | 字段: Model - Model - 基础模型，包含ID、CreatedAt、UpdatedAt字段         |
// | 字段: Title - string - 文章标题，最大长度32字符                          |
// | 字段: Abstract - string - 文章摘要                                       |
// | 字段: Content - string - 文章内容                                       |
// | 字段: CategoryID - uint - 文章分类ID                                     |
// | 字段: TagList - []string - 文章标签列表，JSON格式存储                    |
// | 字段: Cover - string - 文章封面图片URL                                   |
// | 字段: UserID - uint - 文章作者ID                                         |
// | 字段: UserModel - UserModel - 文章作者信息，不JSON序列化                  |
// | 字段: LookCount - int - 文章浏览次数                                     |
// | 字段: DiggCount - int - 文章点赞次数                                     |
// | 字段: CommentCount - int - 文章评论次数                                   |
// | 字段: CollectCount - int - 文章收藏次数                                   |
// | 字段: OpenComment - bool - 是否开启评论功能                              |
// | 字段: Status - int8 - 文章状态（草稿/审核中/已发布）                     |
// =============================================================================
type ArticleModel struct {
	Model
	Title        string    `gorm:"size:32" json:"title"`
	Abstract     string    `json:"abstract"`
	Content      string    `json:"content"`
	CategoryID   uint      `json:"categoryID"`                                   // 分类的id
	TagList      []string  `gorm:"type:longtext;serializer:json" json:"tagList"` // 标签列表
	Cover        string    `json:"cover"`
	UserID       uint      `json:"userID"`
	UserModel    UserModel `gorm:"foreignKey:UserID" json:"-"`
	LookCount    int       `json:"lookCount"`
	DiggCount    int       `json:"diggCount"`
	CommentCount int       `json:"commentCount"`
	CollectCount int       `json:"collectCount"`
	OpenComment  bool      `json:"openComment"` // 开启评论
	Status       int8      `json:"status"`      // 状态 草稿 审核中 已发布
}
